/* The file is saved in UTF-8 codepage.
 * Check: «Stereotype», Section mark-§, Copyright-©, Alpha-α, Beta-β, Smile-☺
 */
package cz.pecinovsky.english.lootp.manager;

import cz.pecinovsky.english.lootp.utility.Area;
import cz.pecinovsky.english.lootp.utility.NamedColor;
import cz.pecinovsky.english.lootp.utility.Position;
import cz.pecinovsky.english.lootp.utility.Size;



////////////////////////////////////////////////////////////////////////////////
//%%+  +++++ End of ignored starting test - place for imports +++++

//%X+ xxxxx Start of the ovejumped text with declaration of the envelope xxxxx
/*******************************************************************************
 *<pre>
 * Previous:  No - this is a newly defined type
 *              Ttt in the project Ppp
 * Following: No
 *
 * Project  Ppp
 *   + Aded
 *   - Removed
 *   ~ Changed
 *</pre>
 *
 * @author Rudolf PECINOVSKÝ
 * @version 6.03.2017 — 2010-11-08
 */
////////////////////////////////////////////////////////////////////////////////
//%X- ----- End of the ovejumped text with declaration of the envelope -----


/*******************************************************************************
 * Instance rozhraní {@code AAA_INTERFACE} představují ...
 *
 * @author Rudolf PECINOVSKÝ
 * @version 6.03.2017 — 2010-11-08
 */
public interface _IShapePlus
       extends   IPaintable
                 , IShape
                     , ICopyable
                     , IChangeable
                        , IResizeable
                        , IMoveable
       
                 , _IPaintablePlus
                 , _INamedPlus
                 , _IMonoColorPlus
                 , _IMoveablePlus
                 , _IChangeablePlus
                 , _IResizeablePlus
{
//== CONSTANTS =================================================================
//== DECLARED METHODS ==========================================================

    //IPaintable
        public void paint(Painter painter);
    
    //IShape
        //ICopyable
//            public ICopyable copy();
            public IShape copy();
        //IChangeable
            //IResizeable
                //%X+ >125
                    public int getWidth();
                    public int getHeight();
                //%X-
                //%A+ >125
                    public Size getSize();
                //%A-
                public void setSize(Size size);
                public void setSize(int width, int height);
            //IMoveable
                //%X+ >125
                    public int getX();
                    public int getY();
                //%X-
                //%A+ >125
                    public Position getPosition();
                //%A-
                public void setPosition(Position pozice);
                public void setPosition(int x, int y);

    //_IPaintablePlus
        public void paint();
        public void rubOut();

    //_INamedPlus
        public String getName();
        public void setName(String name);

    //_IMonoColorPlus
        public NamedColor getColor();
        public void setColor(NamedColor nová);


    //_IMoveablePlus
        public void moveRight(int vzdálenost);
        public void moveRight();
        public void moveLeft();
        public void moveDown(int vzdálenost);
        public void moveDown();
        public void moveUp();

    //_IChangeablePlus
        public Area getArea();
        public void setArea(Area oblast);
        public void setArea(Position pozice, Size rozměr);
        public void setArea(int x, int y, int width, int height);

    //_IResizeablePlus


//== INHERITED METHODS =========================================================
//== EMBEDDED DATA TYPES =======================================================
}
